<template>
  <div class="content">
    <!-- 输入框远程搜索demo -->
    <el-autocomplete
      v-model="state"
      :fetch-suggestions="querySearchAsync"
      placeholder="请输入内容"
      @select="handleSelect"
    ></el-autocomplete>

    <!-- 表格demo -->
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="status"
        label="状态">
        <template slot-scope="scope">
          <span class="status">{{scope.row.status}}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button
            size="mini"
            @click="handleEdit(scope.index, scope.row)">编辑</el-button>
          <el-button
            size="mini"
            type="danger"
            @click="handleDelete(scope.index, scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>

<!-- limit	最大允许上传个数 -->
    <img :src="src" alt="" class="uploadImg">
    <el-upload
      class="upload-demo"
      action="https://jsonplaceholder.typicode.com/posts/"
      :on-preview="handlePreview"
      :on-remove="handleRemove"
      :on-success="handleSuccess"
      :before-remove="beforeRemove"
      multiple
      :limit="3"
      :on-exceed="handleExceed">
      <el-button size="small" type="primary">点击上传</el-button>
      <div slot="tip" class="el-upload__tip">只能上传jpg/png文件，且不超过500kb</div>
    </el-upload>


    <!-- video.js视频播放插件（简单使用） -->
    <!-- 第一步：npm install video.js 安装依赖 -->
    <!-- 第二步：在main.js中引入到vue的原型对象中
          import Video from 'video.js'
          import 'video.js/dist/video-js.css'

          Vue.prototype.$video = Video -->
    <video id="myVideo" class="video-js">
      <source src="../assets/111.mp4" type="video/mp4" >
    </video>

    <!-- Vuex 测试demo -->
    <div>
      {{this.$store.state.count}}
      <!-- Getter相当于vue中的computed计算属性，getter 的返回值会根据它的依赖被缓
      存起来，且只有当它的依赖值发生了改变才会被重新计算，这里我们可以通过定义vuex
      的Getter来获取，Getters 可以用于监听、state中的值的变化，返回计算后的结果 -->
      {{this.$store.getters.getCount}}
      <button @click="jiabtn">+</button>
      <button @click="jianbtn">-</button>
    </div>


    <searchinput :dataArr="dataArr">
    </searchinput>

    <el-image 
      style="width: 100px; height: 100px"
      :src="url" 
      ref="image"
      @click="previewClick"
      :preview-src-list="srcList">
    </el-image>
    <el-button @click="test">点击</el-button>
  </div>
</template>

<script>
import searchinput from './searchinput'
export default {
  name: 'HelloWorld',
  components: {
    searchinput
  },
  data () {
    return {
      src: '',
      restaurants: [],
      state: '',
      timeout:  null,
      tableData: [
        {
          index: 1,
          date: '2019-08-17',
          name: '戴小彬',
          status: 1
        },
        {
          index: 2,
          date: '2019-08-17',
          name: '戴小彬',
          status: 3
        },
        {
          index: 3,
          date: '2019-08-17',
          name: '戴小彬',
          status: 4
        },
        {
          index: 1,
          date: '2019-08-17',
          name: '戴小彬',
          status: 2
        }
      ],
      statusArr: [
        {
          code: 1,
          text: '草稿',
          color: 'green'
        },
        {
          code: 2,
          text: '被退回',
          color: 'yellow'
        },
        {
          code: 3,
          text: '已审批',
          color: 'skyblue'
        },
        {
          code: 4,
          text: '获奖',
          color: 'pink'
        }
      ],
      dataArr: [],
      // 上传的文件列表
      fileList: [
        {
          name: 'food.jpeg', 
          url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
        }, 
        {
          name: 'food2.jpeg', 
          url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
        }
      ],
      url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
      srcList: [
        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
        'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
      ],
      preview: false
    }
  },
  created() {
    this.previewClick() 
  },
  mounted() {
    this.restaurants = this.loadAll()
    // 调用video初始化方法
    this.initVideo()

    
    this.dataArr = this.loadAll()
    // this.dataArr = [{num: '1'},{num: '2'},{num: '3'},{num: '4'},{num: '5'},{num: '6'},{num: '7'},{num: '8'},{num: '9'},{num: '10'},{num: '11'},{num: '12'},{num: '13'},{num: '14'},{num: '15'},{num: '16'}]
  },
  updated() {
    this.status()
  },
  methods: {
    test() {
      console.log(1)
      this.preview = true
      console.log(this.$refs.image)
      this.$refs.image.showViewer = true
    },
    previewClick() {
      console.log(1)
    },
    // vux.mutation 测试
    jiabtn() {
      this.$store.dispatch('jiajia')
    },
    jianbtn() {
      this.$store.dispatch('jianjian')
    },
    // video.js 插件初始化
    initVideo() {
      //初始化视频方法
      let myPlayer = this.$video(myVideo, {
        //确定播放器是否具有用户可以与之交互的控件。没有控件，启动视频播放的唯一方法是使用autoplay属性或通过Player API。
        controls: true,
        //自动播放属性,muted:静音播放
        autoplay: "muted",
        //建议浏览器是否应在<video>加载元素后立即开始下载视频数据。
        preload: "auto",
        //设置视频播放器的显示宽度（以像素为单位）
        width: "800px",
        //设置视频播放器的显示高度（以像素为单位）
        height: "400px"
      });
    },
    // 文件上传成功时的钩子
    handleSuccess(response, file, fileList) {
      console.log(response, file, fileList)
      this.src = file.url
    },
    // 文件列表移除文件时的钩子
    handleRemove(file, fileList) {
      console.log(file, fileList);
    },
    // 点击文件列表中已上传的文件时的钩子
    handlePreview(file) {
      console.log(file);
    },
    // 文件超出个数限制时的钩子
    handleExceed(files, fileList) {
      this.$message.warning(`当前限制选择 3 个文件，本次选择了 ${files.length} 个文件，共选择了 ${files.length + fileList.length} 个文件`);
    },
    // 删除文件之前的钩子
    beforeRemove(file, fileList) {
      return this.$confirm(`确定移除 ${ file.name }？`);
    },
    // 表格状态码转换文本
    status() {
      const nodes = document.getElementsByClassName("status")
      let length = nodes.length
      for (let i = 0; i < length; i++) {
        const statusObj = this.statusArr.filter(item => item.code == nodes[i].innerText)[0]
        if (statusObj) {
          nodes[i].innerText = statusObj.text
          nodes[i].style.color = statusObj.color
        }
      }
    },
    // 搜索的所有value，为后台数据
    loadAll() {
      return [{num: '1'},{num: '2'},{num: '3'},{num: '4'},{num: '5'},{num: '6'},{num: '7'},{num: '8'},{num: '9'},{num: '10'},{num: '11'},{num: '12'},{num: '13'},{num: '14'},{num: '15'},{num: '16'}]
      // return [
      //   { "value": "三全鲜食（北新泾店）", "address": "长宁区新渔路144号" },
      //   { "value": "Hot honey 首尔炸鸡（仙霞路）", "address": "上海市长宁区淞虹路661号" },
      //   { "value": "新旺角茶餐厅", "address": "上海市普陀区真北路988号创邑金沙谷6号楼113" },
      //   { "value": "泷千家(天山西路店)", "address": "天山西路438号" },
      //   { "value": "胖仙女纸杯蛋糕（上海凌空店）", "address": "上海市长宁区金钟路968号1幢18号楼一层商铺18-101" },
      //   { "value": "贡茶", "address": "上海市长宁区金钟路633号" },
      //   { "value": "豪大大香鸡排超级奶爸", "address": "上海市嘉定区曹安公路曹安路1685号" },
      //   { "value": "茶芝兰（奶茶，手抓饼）", "address": "上海市普陀区同普路1435号" },
      //   { "value": "十二泷町", "address": "上海市北翟路1444弄81号B幢-107" },
      //   { "value": "星移浓缩咖啡", "address": "上海市嘉定区新郁路817号" },
      //   { "value": "阿姨奶茶/豪大大", "address": "嘉定区曹安路1611号" },
      //   { "value": "新麦甜四季甜品炸鸡", "address": "嘉定区曹安公路2383弄55号" },
      //   { "value": "Monica摩托主题咖啡店", "address": "嘉定区江桥镇曹安公路2409号1F，2383弄62号1F" },
      //   { "value": "浮生若茶（凌空soho店）", "address": "上海长宁区金钟路968号9号楼地下一层" },
      //   { "value": "NONO JUICE  鲜榨果汁", "address": "上海市长宁区天山西路119号" },
      //   { "value": "CoCo都可(北新泾店）", "address": "上海市长宁区仙霞西路" },
      //   { "value": "快乐柠檬（神州智慧店）", "address": "上海市长宁区天山西路567号1层R117号店铺" },
      //   { "value": "Merci Paul cafe", "address": "上海市普陀区光复西路丹巴路28弄6号楼819" },
      //   { "value": "猫山王（西郊百联店）", "address": "上海市长宁区仙霞西路88号第一层G05-F01-1-306" },
      //   { "value": "枪会山", "address": "上海市普陀区棕榈路" },
      //   { "value": "纵食", "address": "元丰天山花园(东门) 双流路267号" },
      //   { "value": "钱记", "address": "上海市长宁区天山西路" },
      //   { "value": "壹杯加", "address": "上海市长宁区通协路" },
      //   { "value": "唦哇嘀咖", "address": "上海市长宁区新泾镇金钟路999号2幢（B幢）第01层第1-02A单元" },
      //   { "value": "爱茜茜里(西郊百联)", "address": "长宁区仙霞西路88号1305室" },
      //   { "value": "爱茜茜里(近铁广场)", "address": "上海市普陀区真北路818号近铁城市广场北区地下二楼N-B2-O2-C商铺" },
      //   { "value": "鲜果榨汁（金沙江路和美广店）", "address": "普陀区金沙江路2239号金沙和美广场B1-10-6" },
      //   { "value": "开心丽果（缤谷店）", "address": "上海市长宁区威宁路天山路341号" },
      //   { "value": "超级鸡车（丰庄路店）", "address": "上海市嘉定区丰庄路240号" },
      //   { "value": "妙生活果园（北新泾店）", "address": "长宁区新渔路144号" },
      //   { "value": "香宜度麻辣香锅", "address": "长宁区淞虹路148号" },
      //   { "value": "凡仔汉堡（老真北路店）", "address": "上海市普陀区老真北路160号" },
      //   { "value": "港式小铺", "address": "上海市长宁区金钟路968号15楼15-105室" },
      //   { "value": "蜀香源麻辣香锅（剑河路店）", "address": "剑河路443-1" },
      //   { "value": "北京饺子馆", "address": "长宁区北新泾街道天山西路490-1号" },
      //   { "value": "饭典*新简餐（凌空SOHO店）", "address": "上海市长宁区金钟路968号9号楼地下一层9-83室" },
      //   { "value": "焦耳·川式快餐（金钟路店）", "address": "上海市金钟路633号地下一层甲部" },
      //   { "value": "动力鸡车", "address": "长宁区仙霞西路299弄3号101B" },
      //   { "value": "浏阳蒸菜", "address": "天山西路430号" },
      //   { "value": "四海游龙（天山西路店）", "address": "上海市长宁区天山西路" },
      //   { "value": "樱花食堂（凌空店）", "address": "上海市长宁区金钟路968号15楼15-105室" },
      //   { "value": "壹分米客家传统调制米粉(天山店)", "address": "天山西路428号" },
      //   { "value": "福荣祥烧腊（平溪路店）", "address": "上海市长宁区协和路福泉路255弄57-73号" },
      //   { "value": "速记黄焖鸡米饭", "address": "上海市长宁区北新泾街道金钟路180号1层01号摊位" },
      //   { "value": "红辣椒麻辣烫", "address": "上海市长宁区天山西路492号" },
      //   { "value": "(小杨生煎)西郊百联餐厅", "address": "长宁区仙霞西路88号百联2楼" },
      //   { "value": "阳阳麻辣烫", "address": "天山西路389号" },
      //   { "value": "南拳妈妈龙虾盖浇饭", "address": "普陀区金沙江路1699号鑫乐惠美食广场A13" }
      // ];
    },
    querySearchAsync(queryString, cb) {
      var restaurants = this.restaurants;
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;

      clearTimeout(this.timeout);
      this.timeout = setTimeout(() => {
        // 控制搜索时间的延时器
        cb(results);
      }, 3000 * Math.random());
    },
    createStateFilter(queryString) {
      return (state) => {
        // 调用toLowerCase()方法可以转换成小写
        return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
        // 全等于0 是搜索判断首个字符是否相等
        // 不等于-1 是搜索只要存在这个字符就能搜索到
      };
    },
    handleSelect(item) {
      console.log(item);
    },
    handleEdit(index, row) {
      console.log(index, row)
    },
    handleDelete(index, row) {
      console.log(index, row)
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.content {
  height: 2000px;
}
.status {
  font-weight: 700;
}
.uploadImg {
  width: 300px;
  height: 200px;
}
</style>
